<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
    </head>
    <body>
        <script>
            /* 
            需要计算跳到最后一个位置的最小跳跃数(给定的nums[i]一定能跳到最后位置)

            因为我们确保一定能跳到最后，所以我们需要遍历nums数组，找到每个的范围

            */
            var jump = function (nums) {
                let step = 0
                //当前可跳跃的最大范围
                let curCover = 0
                //可跳跃的范围
                let nextCover = 0
                for (let i = 0; i < nums.length; i++) {
                    //计算以当前下标起跳 可跳跃的最大范围
                    nextCover = Math.max(nextCover, nums[i] + i)
                    //当跳跃到当前的最大范围后，需要继续跳一步，进入nextCover的范围
                    if (i == curCover) {
                        step++
                        curCover = nextCover
                        if (curCover >= nums.length - 1) break
                    }
                }
                return step
            }
        </script>
    </body>
</html>
